no warnings and no error on compile and sign
but on run it crashes
Post
Replies
Boosts
Views
Activity
don't forget
here is an online version with compiler and editor with modified source
http://tpcg.io/_BN0N31
here is the plain version:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <stdint.h>
4 #include <stdbool.h>
5 #include <time.h>
6 #include <math.h>
7 #include <unistd.h>
8 #include <string.h>
9 #include <ctype.h>
10 #include <memory.h>
11 #include <iconv.h>
12
13static const char *coin(int fex)
14{
15
16 bool isDuplicate = false;
17 //---------------------------------------------------------------------
18 const char charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
19 int max_index = (sizeof(charset) - 1);
20 //---------------------------------------------------------------------
21 const char *picked = "AAAAAAAAAAAAAAAAAAAAAAAAAA";
22 const char *number = "A";
23 int j = 0,i = 0;
24
25 for (i = 0; i < fex; i++) {
26 do {
27 int target = rand() % max_index; // Generate
28 strncpy((char *)number,&charset[target],strlen(&charset[target])); // Pick
29 // Check for duplicates
30
31 for (j = 0; j < fex; j++) {
32
33 if (number == &picked[j]) {
34
35 isDuplicate = true;
36 // break; // Duplicate detected
37 } // end if
38 else {
39 memmove((void *)&charset[max_index], &charset[max_index - atoi(number)], atoi(&charset[max_index]) - atoi(number));
40 max_index--;
41 isDuplicate = false;
42 // break; // No Duplicate detected
43 } // end else
44 } // end for
45 } // end do
46 while (isDuplicate); // equivalent to while(isDuplicate == true)
47
48 if (!isDuplicate) { // equivalent to if(isDuplicate == false)
49 strncpy((char *)&picked[j],number,strlen(number)); // picked
50 } // end if
51 } // end for
52 return picked;
53 }
54
55 int main(void)
56 {
57 time_t start, stop;
58
59 start = time(NULL);
60
61 for (int i = 0; i < 6; i++) {
62 printf("%s\n", coin(26));
63 } // end for
64 printf("%s\n",coin(5));
65 stop = time(NULL);
66 printf("Time elapsed : %ld seconds\n",(stop - start));
67
68 return 0;
69
70 }
fixed source
good day @eskimo
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <stdint.h>
4 #include <stdbool.h>
5 #include <string.h>
6 #include <math.h>
7 #include <ctype.h>
8 #include <memory.h>
9 #include <time.h>
10
11 #define fox 25
12
13 int main()
14 {
15 time_t start, stop;
16 start = time(NULL);
17
18 bool isDuplicate = false;
19
20 //---------------------------------------------------------------------
21 char charset[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
22 int max_index = (strlen(charset) - 1);
23 //---------------------------------------------------------------------
24
25 char *picked[fox];
26 char *newabc[1];
27
28 int j = 0,i = 0;
29
30 for (i = 0; i <= fox; i++) {
31 newabc[0] = malloc(1*sizeof(char *));
32 picked[i] = malloc(1*sizeof(char *));
33
34 do {
35 newabc[0] = &charset[random() % max_index];
36 // Check for duplicates
37 for (j = 0; j <= fox; j++) {
38 if (newabc[0] == picked[j]) {
39 isDuplicate = true;
40 break; // Duplicate detected
41 } // end if
42 } // for
43 } while (isDuplicate); // equivalent to while(isDuplicate == true) // end do while
44
45 strncpy((char *)picked[j],newabc[0],strlen(picked[j])); // picked
46
47 printf("%s",picked[j]);
48
49 free(newabc[0]);
50 free(picked[j]);
51 } // end for
52 printf("\n");
53 return 0;
54 }